/*
 * @Author: Aro
 * @Date: 2021-10-11 13:31:41
 */


// 给定一个字符串 s ，请你找出其中不含有重复字符的 最长子串 的长度。
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
  const occ = new Set();
  const n = s.length;
  let rk = -1;
  let ans = 0;
  for (let i = 0; i < n; ++i) {
    if (i !== 0) {
      occ.delete(s.charAt(i - 1));
    }
    while (rk + 1 < n && !occ.has(s.charAt(rk + 1))) {
      occ.add(s.charAt(rk + 1));
      ++rk;
    }
    ans = Math.max(ans, rk - i + 1);
  }
  return ans;
};

console.log("====== start ======");

let test1 = lengthOfLongestSubstring('abcdafghemncac');
console.log(test1);

console.log("====== end ======");